Matlab Codes

Chapter 2

Matlab code 2.2: Matlab file “Figure 2-5.m”

%--------------------------------------------------------------------

% This code can be used to generate Figure 2.5

%--------------------------------------------------------------------

 

clear all;

close all;

%% the theoretical curve of the vibrating target micro-Doppler characteristic

c = 3e8;

j = sqrt(-1);

fc = 10e9; % carrier frequency of transmitted signal

cord = 1000*[3 4 5]; % coordinates of local coordinate system's origin in the radar coordinate system

colo = [0 0 0]; % coordinates of radar in the radar coordinate system

R0 = cord-colo;

alpha = 0.9273; % azimuth angle

% alpha = atan(cora(2)/cora(1));

beita = 0.7854; % elevation angle

% beita = atan(cora(3)/(sqrt(cora(1)^2+cora(2)^2)));

alpha_p = pi/5; % azimuth angle of vibrating axis

beita_p = pi/4; % elevation angle of vibrating axis

v = 0; % translational velocity of target

dv = 0.01; % vibration amplitude

fv = 3; % vibration frequency

prf = 1000; % pulse repetition frequency

pri = 1/prf; % pulse repetition interval

t = 1; % radar illumimated time

dt = 0:pri:t-pri; % time sampling interval

temp = cos(alpha-alpha_p)*cos(beita)*cos(beita_p)+sin(beita)*sin(beita_p);

fmd = (4*pi*fc*fv*dv/c)*temp*cos(2*pi*fv*dt); % theoretical micro-Doppler frequency

figure(1)

plot(dt,fmd)

xlabel('Time (s)')

ylabel('Frequency (Hz)')

axis([0,1,-50,50])

 

%% the time-frequency analysis result of the vibrating target micro-Doppler characteristic

r = zeros(length(colo),length(dt)); % distance between the scatterers and radar

m = length(dt);

for i = 1:m

    r(:,i) = R0'+dv*sin(2*pi*fv*dt(i))*[cos(alpha_p)*cos(beita_p);sin(alpha_p)*cos(beita_p);sin(beita_p)];

end

rabs = sqrt(sum(r.^2,1));

s = exp(j*2*pi*fc*2*rabs'/c); % echo signal matrix

N = 200; % number of Gabor coefficients in time

Q = 100; % degree of oversampling

tfr = tfrgabor(s.',N,Q); % Gabor transform

tfr_r = fftshift(tfr,1);

figure(2)

contour(linspace(min(dt),max(dt),length(tfr_r(1,:))),linspace(-prf/2,prf/2-1,length(tfr_r(:,1))),tfr_r,10)

xlabel('Time (s)')

ylabel('Frequency (Hz)')

axis([0,1,-50,50])